@@ -6,6 +6,7 @@ |
||
| 6 | 6 |
#= require jquery.json-editor |
| 7 | 7 |
#= require latlon_and_geo |
| 8 | 8 |
#= require ./worker-checker |
| 9 |
+#= require ./users |
|
| 9 | 10 |
#= require_self |
| 10 | 11 |
|
| 11 | 12 |
window.setupJsonEditor = ($editor = $(".live-json-editor")) ->
|
@@ -0,0 +1,6 @@ |
||
| 1 |
+//alert("i get included");
|
|
| 2 |
+function remove_fields(link){
|
|
| 3 |
+ $(link).prev().val("1");
|
|
| 4 |
+ alert($(link).prev().val()) |
|
| 5 |
+ $(link).parent(".fields").hide();
|
|
| 6 |
+} |
@@ -14,4 +14,17 @@ module ApplicationHelper |
||
| 14 | 14 |
link_to '<span class="label label-warning">No</span>'.html_safe, agent_path(agent, :tab => (agent.recent_error_logs? ? 'logs' : 'details')) |
| 15 | 15 |
end |
| 16 | 16 |
end |
| 17 |
+ |
|
| 18 |
+ def link_to_remove_fields(name, f, options = {})
|
|
| 19 |
+ f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)", options) |
|
| 20 |
+ end |
|
| 21 |
+ |
|
| 22 |
+ def link_to_add_fields(name, f, options = {})
|
|
| 23 |
+ new_object = f.object.class.reflect_on_association(association).klass.new |
|
| 24 |
+ fields = f.fields_for(association, new_object, :child_index => "new_#{ association }") do |builder|
|
|
| 25 |
+ render(association.to_s.singularize + "_fields", :f => builder) |
|
| 26 |
+ end |
|
| 27 |
+ link_to_function(name, "add_fields(this, \"#{ association }\", \"#{ escape_javascript(fields) }\")", options)
|
|
| 28 |
+ end |
|
| 29 |
+ |
|
| 17 | 30 |
end |
@@ -22,6 +22,10 @@ class User < ActiveRecord::Base |
||
| 22 | 22 |
validates_format_of :username, :with => /\A[a-zA-Z0-9_-]{3,15}\Z/, :message => "can only contain letters, numbers, underscores, and dashes, and must be between 3 and 15 characters in length."
|
| 23 | 23 |
validates_inclusion_of :invitation_code, :on => :create, :in => INVITATION_CODES, :message => "is not valid" |
| 24 | 24 |
|
| 25 |
+ has_many :user_credentials, :dependent => :destroy |
|
| 26 |
+ accepts_nested_attributes_for :user_credentials, :reject_if => lambda { |attrs| attrs.all? { |key, value| value.blank? } },
|
|
| 27 |
+ :allow_destroy => true |
|
| 28 |
+ attr_accessible :user_credentials_attributes |
|
| 25 | 29 |
has_many :events, :order => "events.created_at desc", :dependent => :delete_all, :inverse_of => :user |
| 26 | 30 |
has_many :agents, :order => "agents.created_at desc", :dependent => :destroy, :inverse_of => :user |
| 27 | 31 |
has_many :logs, :through => :agents, :class_name => "AgentLog" |
@@ -0,0 +1,4 @@ |
||
| 1 |
+class UserCredential < ActiveRecord::Base |
|
| 2 |
+ attr_accessible :credential_name, :credential_value, :user_id |
|
| 3 |
+ belongs_to :user |
|
| 4 |
+end |
@@ -0,0 +1,8 @@ |
||
| 1 |
+<p class="fields"> |
|
| 2 |
+ <%= f.label :credential_name, "Name" %> |
|
| 3 |
+ <%= f.text_field :credential_name %> |
|
| 4 |
+ <%= f.label :credential_value, "Value" %> |
|
| 5 |
+ <%= f.text_field :credential_value %> |
|
| 6 |
+ <%= f.hidden_field :_destroy %> |
|
| 7 |
+ <%= link_to_function "remove", "remove_fields(this)" %> |
|
| 8 |
+</p> |
@@ -1,3 +1,4 @@ |
||
| 1 |
+hello doctor |
|
| 1 | 2 |
<div class='container'> |
| 2 | 3 |
<div class='row'> |
| 3 | 4 |
<div class='span8 offset2'> |
@@ -48,6 +49,12 @@ |
||
| 48 | 49 |
<div class='form-actions'> |
| 49 | 50 |
<%= f.submit "Update", :class => "btn btn-primary" %> |
| 50 | 51 |
</div> |
| 52 |
+ now the new stuff |
|
| 53 |
+ <div class="control-group"> |
|
| 54 |
+ <%= f.fields_for(:user_credentials) do |uc| %> |
|
| 55 |
+ <%= render 'user_credentials_fields', :f => uc %> |
|
| 56 |
+ <% end %> |
|
| 57 |
+ </div> |
|
| 51 | 58 |
<% end %> |
| 52 | 59 |
|
| 53 | 60 |
<h3>Cancel my account</h3> |
@@ -58,4 +65,4 @@ |
||
| 58 | 65 |
</div> |
| 59 | 66 |
</div> |
| 60 | 67 |
</div> |
| 61 |
-</div> |
|
| 68 |
+</div> |
@@ -0,0 +1,12 @@ |
||
| 1 |
+class CreateUserCredentials < ActiveRecord::Migration |
|
| 2 |
+ def change |
|
| 3 |
+ create_table :user_credentials do |t| |
|
| 4 |
+ t.integer :user_id |
|
| 5 |
+ t.string :credential_name |
|
| 6 |
+ t.string :credential_value |
|
| 7 |
+ |
|
| 8 |
+ t.timestamps |
|
| 9 |
+ end |
|
| 10 |
+ add_index :user_credentials, [:user_id, :credential_name], :unique => true |
|
| 11 |
+ end |
|
| 12 |
+end |
@@ -0,0 +1,5 @@ |
||
| 1 |
+require 'spec_helper' |
|
| 2 |
+ |
|
| 3 |
+describe UserCredential do |
|
| 4 |
+ pending "add some examples to (or delete) #{__FILE__}"
|
|
| 5 |
+end |